perm filename FUNCTI.DIF[CLS,LSP]2 blob sn#832568 filedate 1987-01-15 generic text, type T, neo UTF8
  1) FUNCTI.TEX[CLS,LSP] and 2) FUNCTI.10[CLS,LSP]	1-15-87 15:06	pages 1,1

**** File 1) FUNCTI.TEX[CLS,LSP]/1P/143L
1)	The macro {\bf call-next-method} is used within the body of a method.
**** File 2) FUNCTI.10[CLS,LSP]/1P/143L
2)	[The description of {\bf call-next-method} will be rewritten once 
2)	we have decided on method combination.]
2)	The macro {\bf call-next-method} is used within the body of a method.
***************


**** File 1) FUNCTI.TEX[CLS,LSP]/1P/149L
1)	methods {\bf call-next-method} can be used.  The standard method
1)	combination type allows {\bf call-next-method} to be used within primary
1)	methods and {\bf :around} methods, and defines the next method as
1)	follows:  if {\bf call-next-method} is used in an {\bf :around} method,
1)	the next method is the next most specific {\bf :around} method if one is
1)	applicable, otherwise it is the next most specific primary method.  If 
1)	{\bf call-next-method} is used in a primary method, the next method is
1)	the next most specific primary method.
1)	%  [The definition of ``next method'' should
**** File 2) FUNCTI.10[CLS,LSP]/1P/152L
2)	methods {\bf call-next-method} can be used.  The default method  
2)	combination type, {\bf :daemon}, allows {\bf call-next-method} to be
2)	used within primary methods and {\bf :around} methods, and
2)	defines the next method as follows:  if {\bf call-next-method} is
2)	used in an {\bf :around} method, the next method is the next most
2)	specific {\bf :around} method if one is available, otherwise it is the
2)	next most specific primary method.  If {\bf call-next-method} is used
2)	in a primary method, the next method is the next most specific primary
2)	method.  
2)	%  [The definition of ``next method'' should
***************


**** File 1) FUNCTI.TEX[CLS,LSP]/1P/202L
1)	{\bf :around} methods only. 
1)	Possible extensions: % [have we discussed any of this ?]
**** File 2) FUNCTI.10[CLS,LSP]/1P/206L
2)	{\bf :around} methods only. % [??]
2)	Possible extensions: % [have we discussed any of this ?]
***************


**** File 1) FUNCTI.TEX[CLS,LSP]/1P/216L
1)	See the sections ``Method Selection and Combination'', 
1)	``Standard Method Combination'', and ``Declarative Method Combination''. 
1)	\endcom
**** File 2) FUNCTI.10[CLS,LSP]/1P/220L
2)	%See the sections ``Method Selection'' and ``Method Combination.''
  1) FUNCTI.TEX[CLS,LSP] and 2) FUNCTI.10[CLS,LSP]	1-15-87 15:06	pages 1,1

2)	\endcom
***************


**** File 1) FUNCTI.TEX[CLS,LSP]/1P/476L
1)	slot.  The {\bf :initform} option may be specified at most once for a
1)	given slot.    This form is evaluated every time it is used.  
1)	It is important to specify both the lexical and dynamic environment in which
1)	this form is evaluated. 
1)	The lexical environment in which this form is evaluated is the 
1)	lexical environment in which {\bf defclass} was evaluated.
1)	Note that the lexical environment refers both to variables and to functions. 
1)	The dynamic environment is the one in effect at the time the form is evaluated.
1)	This is the same behavior specified in {\it Common Lisp the Language\/} 
1)	for {\bf defstruct} slot initialization forms. 
1)	%I removed this according to the mail.  -Sonya
**** File 2) FUNCTI.10[CLS,LSP]/1P/479L
2)	slot.  This form is evaluated every time it is used.  
2)	The {\bf :initform} option may be specified at most once for a
2)	given slot.
2)	%I removed this according to the mail.  -Sonya
***************


**** File 1) FUNCTI.TEX[CLS,LSP]/1P/763L
1)	\hbox{(:method-combination {\it symbol\/} {\it args\/}) $\vert$}
1)	\hbox{(:generic-function-class {\it class-name\/}) $\vert$}
**** File 2) FUNCTI.10[CLS,LSP]/1P/759L
2)	\hbox{(:method-combination {\it symbol\/}) $\vert$}
2)	\hbox{(:generic-function-class {\it class-name\/}) $\vert$}
***************


**** File 1) FUNCTI.TEX[CLS,LSP]/1P/885L
1)	The :method-combination option is followed by a symbol that
1)	names a type of method combination.   The arguments (if any) that follow 
1)	that symbol depend on the type of method combination.   For example, all 
1)	types of method combination defined by the short form of {\bf 
1)	define-method-combination} accept an optional argument named {\it 
1)	order\/}, defaulting to {\bf :most-specific-first}.  A value of {\bf
1)	:most-specific-last} reverses the order of the primary methods, without
1)	affecting the order of the auxiliary methods.
1)	\endlist
**** File 2) FUNCTI.10[CLS,LSP]/1P/881L
2)	[The {\bf :method-combination} option is still under discussion.]
2)	%
2)	%(:method-combination name {argument}*)
2)	%                Indicates that the generic function uses the type of method
  1) FUNCTI.TEX[CLS,LSP] and 2) FUNCTI.10[CLS,LSP]	1-15-87 15:06	pages 1,1

2)	%                combination named by name.  The arguments depend on the
2)	%                type of method combination.  The most common argument is
2)	%                one to specify the order of methods, which is either
2)	%                :most-specific-first or :most-specific-last.  The default
2)	%                method combination type is :daemon, with the
2)	%                :most-specific-first order.
2)	\endlist
***************


**** File 1) FUNCTI.TEX[CLS,LSP]/1P/947L
1)	\hbox{(:method-combination {\it symbol\/} {\it args\/}) $\vert$}
1)	\hbox{(:generic-function-class {\it class-name\/}) $\vert$}
**** File 2) FUNCTI.10[CLS,LSP]/1P/944L
2)	\hbox{(:method-combination {\it symbol\/}) $\vert$}
2)	\hbox{(:generic-function-class {\it class-name\/}) $\vert$}
***************


**** File 1) FUNCTI.TEX[CLS,LSP]/1P/967L
1)	\screen! 
1)	[To be written.]
**** File 2) FUNCTI.10[CLS,LSP]/1P/964L
2)	\screen!
2)	[To be written.]
***************


**** File 1) FUNCTI.TEX[CLS,LSP]/1P/996L
1)	of method combination.    The syntax and semantics of {\bf define-method-combination}
1)	are described in ``Declarative Method Combination'', along with several 
1)	examples of its use.
1)	%\label Remarks: 
1)	The following functions are provided as part of the declarative 
1)	method combination facility:
1)	{\bf make-method-call}
1)	{\bf method-qualifiers}
1)	{\bf multiple-value-prog2}
1)	{\bf method-combination-error}
1)	{\bf invalid-method-error} 
1)	\endcom
**** File 2) FUNCTI.10[CLS,LSP]/1P/993L
2)	of method combination.
2)	At present the details of {\bf define-method-combination} and related
2)	functions are under discussion.
2)	%\label Syntax:
2)	%\label Arguments:
2)	%\label Values:
  1) FUNCTI.TEX[CLS,LSP] and 2) FUNCTI.10[CLS,LSP]	1-15-87 15:06	pages 1,1

2)	%\label Examples:
2)	%\label Remarks:
2)	\endcom
***************


**** File 1) FUNCTI.TEX[CLS,LSP]/1P/1031L
1)	the standard method-combination type.  The lambda list of the 
1)	generic function is congruent with the argument list of the method being
**** File 2) FUNCTI.10[CLS,LSP]/1P/1024L
2)	the method-combination type ({\bf daemon}).  The lambda list of the
2)	generic function is congruent with the argument list of the method being
***************


**** File 1) FUNCTI.TEX[CLS,LSP]/1P/1512L
1)	The function {\bf invalid-method-error} reports an applicable method
1)	whose qualifiers are not valid for the method combination type.  The 
1)	error message is constructed using a format string and any arguments to it. 
1)	An implementation may add additional contextual information 
1)	to the error message, thus {\bf invalid-method-error} should be called
**** File 2) FUNCTI.10[CLS,LSP]/1P/1505L
2)	The function {\bf invalid-method-error} reports an available method
2)	whose qualifiers are not valid for the method combination type.  The
2)	error message is constructed using {\it format-string\/} and {\it
2)	args\/}.  An implementation may add additional contextual information
2)	to the error message, thus {\bf invalid-method-error} should be called
***************


**** File 1) FUNCTI.TEX[CLS,LSP]/1P/1528L
1)	The {\it method\/} argument is the invalid method object.  
1)	{\it format-string\/} is a control string that can be given to {\bf 
1)	format}, and {\it args\/} are any arguments required by the format
1)	string. 
1)	\label Remarks:
**** File 2) FUNCTI.10[CLS,LSP]/1P/1521L
2)	The {\it method\/} argument is the invalid method.
2)	\label Remarks:
***************


**** File 1) FUNCTI.TEX[CLS,LSP]/1P/1585L
1)	\hbox{ :declare :documentation :method-combination} 
1)	\hbox{ :generic-function-class :method-class}}}
**** File 2) FUNCTI.10[CLS,LSP]/1P/1574L
2)	\hbox{ :declare :documentation :method-combination}
2)	\hbox{ :generic-function-class :method-class}}}
  1) FUNCTI.TEX[CLS,LSP] and 2) FUNCTI.10[CLS,LSP]	1-15-87 15:06	pages 1,1

***************


**** File 1) FUNCTI.TEX[CLS,LSP]/1P/1591L
1)	given to {\bf defgeneric-options}.   
1)	The following arguments have the same semantics as the corresponding
**** File 2) FUNCTI.10[CLS,LSP]/1P/1580L
2)	given to {\bf defgeneric-options}.
2)	The following arguments have the same semantics as the corresponding
***************


**** File 1) FUNCTI.TEX[CLS,LSP]/1P/1607L
1)	The :method-combination option is followed by a symbol or list, whose 
1)	car is a symbol and crd is any arguments accepted by the method combination.
1)	The symbol names a type of method combination.   Any arguments that follow 
1)	that symbol depend on the type of method combination.   For example, all 
1)	types of method combination defined by the short form of {\bf 
1)	define-method-combination} accept an optional argument named {\it 
1)	order\/}, defaulting to {\bf :most-specific-first}.  A value of {\bf
1)	:most-specific-last} reverses the order of the primary methods, without
1)	affecting the order of the auxiliary methods. 
1)	\item{\bull}
**** File 2) FUNCTI.10[CLS,LSP]/1P/1596L
2)	The {\bf :method-combination} argument is still under discussion.
2)	% a symbol.
2)	\item{\bull}
***************


**** File 1) FUNCTI.TEX[CLS,LSP]/1P/1745L
1)	The function {\bf make-method-call} is used in method combination.  It
1)	can be called only from the dynamic environment of a method combination 
1)	function, that is, from the body of {\bf define-method-combination}, 
1)	from a {\bf compute-effective-method} method, or from a function called
1)	by one of these.
1)	{\bf make-method-call} returns a form whose car is
1)	the operator specified by the {\bf :operator} keyword argument
**** File 2) FUNCTI.10[CLS,LSP]/1P/1727L
2)	The function {\bf make-method-call} is used in method combination.  
2)	It returns a form whose car is
2)	the operator specified by the {\bf :operator} keyword argument
***************


**** File 1) FUNCTI.TEX[CLS,LSP]/1P/1759L
1)	\label Syntax:
**** File 2) FUNCTI.10[CLS,LSP]/1P/1736L
  1) FUNCTI.TEX[CLS,LSP] and 2) FUNCTI.10[CLS,LSP]	1-15-87 15:06	pages 1,1

2)	The function {\bf make-method-call} can be called only from the
2)	dynamic environment of a method combination function, that is,
2)	from the body of {\bf define-method-combination}, from a
2)	{\bf compute-effective-method} method, or from a function called by one
2)	of these.
2)	\label Syntax:
***************


**** File 1) FUNCTI.TEX[CLS,LSP]/1P/1802L
1)	The result is a form whose car is the operator specified by the 
1)	{\bf :operator} keyword argument and whose cdr is a list of forms
1)	that call the methods in {\it method-list}.
1)	\label See Also: 
1)	See ``Declarative Method Combination''. 
1)	\label Possible Extensions:
1)	Additional keyword arguments will be needed if {\bf call-next-method}
1)	is allowed to change the arguments passed on to the next method.  They
1)	will be proposed separately. 
1)	\endcom
**** File 2) FUNCTI.10[CLS,LSP]/1P/1785L
2)	The result is a form whose car is the operator specified by the
2)	{\bf :operator} keyword argument and whose cdr is a list of forms
2)	that call the methods in {\it method-list}.
2)	\label Possible Extensions:
2)	% Verb needed below:
2)	Additional keyword arguments will be <verb??> if {\bf call-next-method}
2)	is allowed to change the arguments passed on to the next method.  They
2)	will be proposed separately.
2)	\endcom
***************


**** File 1) FUNCTI.TEX[CLS,LSP]/1P/1824L
1)	combination.   The error message is constructed using a format string
1)	and any arguments to it.  An implementation may add additional
1)	contextual information to the error message, thus {\bf
1)	method-combination-error} should be called only from the dynamic
1)	environment of a method combination function.
1)	The environment determines whether {\bf method-combination-error} returns
**** File 2) FUNCTI.10[CLS,LSP]/1P/1804L
2)	combination.  The error message is constructed using {\it format-string\/}
2)	and {\it args\/}.  An implementation may add additional contextual
2)	information to the error message, thus {\bf method-combination-error}
2)	should be called only from the dynamic environment of a method combination
2)	function.
2)	The environment determines whether {\bf method-combination-error} returns
***************
  1) FUNCTI.TEX[CLS,LSP] and 2) FUNCTI.10[CLS,LSP]	1-15-87 15:06	pages 1,1



**** File 1) FUNCTI.TEX[CLS,LSP]/1P/1837L
1)	\label Arguments: 
1)	{\it format-string\/} is a control string that can be given to {\bf
1)	format}, and {\it args\/} are any arguments required by the format
1)	string. 
1)	\label Remarks:
**** File 2) FUNCTI.10[CLS,LSP]/1P/1817L
2)	\label Remarks:
***************


**** File 1) FUNCTI.TEX[CLS,LSP]/1P/1848L
1)	\label See Also: 
1)	See ``Declarative Method Combination''. 
1)	\endcom
**** File 2) FUNCTI.10[CLS,LSP]/1P/1822L
2)	\endcom
***************


**** File 1) FUNCTI.TEX[CLS,LSP]/1P/1873L
1)	\label Arguments:
1)	{\it method\/} is a method object. 
1)	\label Values:
**** File 2) FUNCTI.10[CLS,LSP]/1P/1843L
2)	\label Values:
***************


**** File 1) FUNCTI.TEX[CLS,LSP]/1P/1892L
1)	\label See Also: 
1)	See ``Declarative Method Combination''. 
1)	\endcom
**** File 2) FUNCTI.10[CLS,LSP]/1P/1858L
2)	\endcom
***************


**** File 1) FUNCTI.TEX[CLS,LSP]/1P/1903L
1)	The macro {\bf multiple-value-prog2} is the obvious extension of 
1)	{\bf multiple-value-prog1}.  It evaluates the given forms and returns
1)	all the values of {\it result-form}. 
1)	\label Syntax:
**** File 2) FUNCTI.10[CLS,LSP]/1P/1865L
2)	The macro {\bf multiple-value-prog2} is the obvious extension of
2)	{\bf multiple-value-prog1}.  It evaluates the given forms and returns
  1) FUNCTI.TEX[CLS,LSP] and 2) FUNCTI.10[CLS,LSP]	1-15-87 15:06	pages 1,1

2)	all the values of {\it result-form}.
2)	\label Syntax:
***************


**** File 1) FUNCTI.TEX[CLS,LSP]/1P/1915L
1)	\label See Also: 
1)	See ``Declarative Method Combination''. 
1)	\endcom
**** File 2) FUNCTI.10[CLS,LSP]/1P/1877L
2)	\endcom
***************